home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / pcl / src-16f.lha / compiler / generic / vm-typetran.lisp < prev   
Encoding:
Text File  |  1992-05-23  |  2.8 KB  |  71 lines

  1. ;;; -*- Package: C; Log: C.Log -*-
  2. ;;;
  3. ;;; **********************************************************************
  4. ;;; This code was written as part of the CMU Common Lisp project at
  5. ;;; Carnegie Mellon University, and has been placed in the public domain.
  6. ;;; If you want to use this code or any part of CMU Common Lisp, please contact
  7. ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
  8. ;;;
  9. (ext:file-comment
  10.   "$Header: vm-typetran.lisp,v 1.10.1.1 92/05/22 22:56:51 ram Exp $")
  11. ;;;
  12. ;;; **********************************************************************
  13. ;;;
  14. ;;; $Header: vm-typetran.lisp,v 1.10.1.1 92/05/22 22:56:51 ram Exp $
  15. ;;;
  16. ;;; This file contains the implimentation specific type transformation magic.
  17. ;;; Basically, the various non-standard predicates that can be used in typep
  18. ;;; transformations.
  19. ;;; 
  20. ;;; Written by William Lott.
  21. ;;;
  22.  
  23. (in-package "C")
  24.  
  25.  
  26. ;;;; Internal predicates:
  27. ;;;
  28. ;;;    These type predicates are used to implement simple cases of typep.  They
  29. ;;; shouldn't be used explicitly.
  30.  
  31. (define-type-predicate base-char-p base-char)
  32. (define-type-predicate bignump bignum)
  33. (define-type-predicate double-float-p double-float)
  34. (define-type-predicate fixnump fixnum)
  35. (define-type-predicate long-float-p long-float)
  36. (define-type-predicate ratiop ratio)
  37. (define-type-predicate short-float-p short-float)
  38. (define-type-predicate single-float-p single-float)
  39. (define-type-predicate simple-array-p simple-array)
  40. (define-type-predicate simple-array-unsigned-byte-2-p
  41.                (simple-array (unsigned-byte 2) (*)))
  42. (define-type-predicate simple-array-unsigned-byte-4-p
  43.                (simple-array (unsigned-byte 4) (*)))
  44. (define-type-predicate simple-array-unsigned-byte-8-p
  45.                (simple-array (unsigned-byte 8) (*)))
  46. (define-type-predicate simple-array-unsigned-byte-16-p
  47.                (simple-array (unsigned-byte 16) (*)))
  48. (define-type-predicate simple-array-unsigned-byte-32-p
  49.                (simple-array (unsigned-byte 32) (*)))
  50. (define-type-predicate simple-array-single-float-p
  51.                (simple-array single-float (*)))
  52. (define-type-predicate simple-array-double-float-p
  53.                (simple-array double-float (*)))
  54. (define-type-predicate system-area-pointer-p system-area-pointer)
  55. (define-type-predicate unsigned-byte-32-p (unsigned-byte 32))
  56. (define-type-predicate signed-byte-32-p (signed-byte 32))
  57. (define-type-predicate weak-pointer-p weak-pointer)
  58. (define-type-predicate scavenger-hook-p scavenger-hook)
  59. (define-type-predicate code-component-p code-component)
  60. (define-type-predicate lra-p lra)
  61. (define-type-predicate fdefn-p fdefn)
  62.  
  63. ;;; ### Hack...
  64. (def-source-transform fdefn-p (x) (declare (ignore x)) 'nil)
  65.  
  66. ;;; Unlike the un-%'ed versions, these are true type predicates, accepting any
  67. ;;; type object.
  68. ;;;
  69. ;(define-type-predicate %string-char-p string-char)
  70. (define-type-predicate %standard-char-p standard-char)
  71.